public class Test {
    // 主方法测试
    public static void main(String[] args) {
        PriorityQueue pq = new PriorityQueue();

        // 1. 测试建堆
        int[] array = {4, 6, 8, 5, 9};
        pq.createHeap(array);
        System.out.print("建堆后：");
        pq.printHeap();  // 预期输出：9 6 8 5 4（大根堆结构）

        // 2. 测试入队
        pq.push(10);
        System.out.print("入队10后：");
        pq.printHeap();  // 预期输出：10 9 8 5 4 6（保持大根堆）

        // 3. 测试获取堆顶
        System.out.println("当前堆顶：" + pq.peekHeap());  // 预期输出：10

        // 4. 测试出队
        pq.pollHeap();
        System.out.print("出队后：");
        pq.printHeap();  // 预期输出：9 6 8 5 4（删除10后重新调整）

        // 5. 测试空堆出队
        pq.pollHeap();
        pq.pollHeap();
        pq.pollHeap();
        pq.pollHeap();
        pq.pollHeap();
        System.out.print("多次出队后：");
        pq.printHeap();  // 预期输出：堆为空
        pq.pollHeap();   // 预期提示：堆为空，无法出队
    }
    public static void main1(String[] args) {
      PriorityQueueHeap priorityQueueHeap=new PriorityQueueHeap();
      int[] array={27,15,19,18,28,34,65,49,25,37};
      priorityQueueHeap.createHeap(array);
      priorityQueueHeap.downAdjust(array, (array.length-1-1)/2);
      //priorityQueueHeap.upadjust(array,array.length-1);
    }
}
